#include"process.h"

#define GREEN "\033[0;32;32m"
#define NONE "\033[m"//进度条颜色

#define NUM 102//数组大小
#define Style '='//进度条形状
#define F '>' //投标



const char label[5]="|/-/";

char bar[NUM];


void process(double cur,double file)
{
    int cnt=0;
     int loop=(int)cur*100/file;//百分比
     int len=strlen(label);
     
     while(cnt<=loop)
     {
       bar[cnt++]=Style;//需要打印进度条的长度
     }
     
     if(cnt<100) bar[cnt]=F;

     printf(GREEN"[%-100s]"NONE"[%d%%][%c]\r",bar,cnt,label[cnt%len] );
     //一个% 会被是做标识符,%100s 代表字符串占100空间，但是是从右向左的 ‘-’可以改变方向。
    fflush(stdout);
}



void download(double file,call_back cb) //在回调函数
{
   memset(bar,'\0',sizeof(bar));
   
   double cur=0;//表示当前下载进度
    
     while(cur<=file)//当前下载量小于文件总大小
     {
         usleep(1000);//休眠5000毫秒
        
         cb(cur,file);//自己调用自己，作用是打印进度条，百分比

         cur+=1000;//每次下载1000
     }
     
 printf("\n");
}
